summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Ben Hutchings [Tue, 14 Jun 2016 20:14:14 +0000 (21:14 +0100)]
liblockdep: Define the ARRAY_SIZE() macro
lockdep.c now uses ARRAY_SIZE().
Fixes: 75dd602a5198 ("lockdep: Fix lock_chain::base size")
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name liblockdep-define-the-array_size-macro.patch
Ben Hutchings [Tue, 14 Jun 2016 19:44:14 +0000 (20:44 +0100)]
liblockdep: Reduce MAX_LOCK_DEPTH to avoid overflowing lock_chain::depth
liblockdep has been broken since commit
75dd602a5198 ("lockdep: Fix
lock_chain::base size"), as that adds a check that MAX_LOCK_DEPTH is
within the range of lock_chain::depth and in liblockdep it is much
too large.
That should have resulted in a compiler error, but didn't because:
- the check uses ARRAY_SIZE(), which isn't yet defined in liblockdep
so is assumed to be an (undeclared) function
- putting a function call inside a BUILD_BUG_ON() expression quietly
turns it into some nonsense involving a variable-length array
It did produce a compiler warning, but I didn't notice because
liblockdep already produces too many warnings if -Wall is enabled
(which I'll fix shortly).
Even before that commit, which reduced lock_chain::depth from 8 bits
to 6, MAX_LOCK_DEPTH was too large.
Cc: <stable@vger.kernel.org> # for versions before 4.6, use a value of 255
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name liblockdep-reduce-max_lock_depth-to-avoid-overflowin.patch
Ben Hutchings [Tue, 14 Jun 2016 20:09:19 +0000 (21:09 +0100)]
liblockdep: Fix undefined symbol prandom_u32
__lock_pin_lock() now calls prandom_u32() which is not defined in
liblockdep. __lock_pin_lock() and its caller lock_pin_lock() are dead
code in liblockdep, but we still need to provide a definition of
prandom_u32() in case lazy binding is disabled.
Fixes: e7904a28f533 ("locking/lockdep, sched/core: Implement a better ...")
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name liblockdep-fix-undefined-symbol-prandom_u32.patch
Ben Hutchings [Thu, 3 Nov 2016 21:25:26 +0000 (15:25 -0600)]
cpupower: Fix checks for CPU existence
Calls to cpufreq_cpu_exists(cpu) were converted to
cpupower_is_cpu_online(cpu) when libcpupower was introduced and the
former function was deleted. However, cpupower_is_cpu_online()
returns 1 on success whereas cpufreq_cpu_exists() returned 0 on
success. It also does not distinguish physically absent and offline
CPUs, and does not set errno.
In cpufreq-set, test for cpupower_is_cpu_online(cpu) != 1.
In cpufreq-bench, which prints an error message for offline CPUs,
properly distinguish and report the zero and negative cases.
Reported-by: Jose <jjorge@free.fr>
Reported-by: Julien RIVAUD <frnchfrgg@free.fr>
Cc: stable <stable@vger.kernel.org> # 4.7+
Fixes: ac5a181d065d ("cpupower: Add cpuidle parts into library")
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name cpupower-fix-checks-for-cpu-existence.patch
Ben Hutchings [Thu, 9 Jun 2016 22:35:08 +0000 (23:35 +0100)]
cpupower: Bump soname version
Several functions in the libcpupower API are renamed or removed in
Linux 4.7. This is an backward-incompatible ABI change, so the
library soname should change from libcpupower.so.0 to
libcpupower.so.1.
Fixes: ac5a181d065d ("cpupower: Add cpuidle parts into library")
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name cpupower-bump-soname-version.patch
Ben Hutchings [Sun, 20 Mar 2016 21:09:02 +0000 (21:09 +0000)]
tools lib traceevent: Fix use of uninitialized variables
Fix a number of correct warnings from gcc:
> plugin_function.c:133:6: warning: 'index' may be used uninitialized in this function [-Wmaybe-uninitialized]
> int index;
> ^
'index' is initialized only if indentation is wanted. Move the
printing of indentation using 'index' into the same if-statement.
> kbuffer-parse.c:339:27: warning: 'length' may be used uninitialized in this function [-Wmaybe-uninitialized]
> kbuf->next = kbuf->index + length;
> ^
> kbuffer-parse.c:297:15: note: 'length' was declared here
> unsigned int length;
> ^
'length' is not initialized when handling an OLD_RINGBUF_TYPE_TIME_EXTEND
record. Based on what trace-cmd does, set length = 0 in this case.
> kbuffer-parse.c: In function 'kbuffer_read_at_offset':
> kbuffer-parse.c:632:9: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized]
> return data;
> ^
'data' is not initialized if the offset is too small. Initialize it
to NULL so that the behaviour is the same as when the offset is too
large.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name tools-lib-traceevent-fix-use-of-uninitialized-variables.patch
Ben Hutchings [Sun, 21 Feb 2016 15:33:15 +0000 (15:33 +0000)]
tools/build: Remove bpf() run-time check at build time
It is not correct to test that a syscall works on the build system's
kernel. We might be building on an earlier kernel version or with
security restrictions that block bpf().
Also fix the test for whether __NR_bpf is defined.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name tools-build-remove-bpf-run-time-check-at-build-time.patch
Ben Hutchings [Tue, 29 Sep 2015 01:55:06 +0000 (02:55 +0100)]
alpha: uapi: Add support for __SANE_USERSPACE_TYPES__
This fixes compiler errors in perf such as:
tests/attr.c: In function 'store_event':
tests/attr.c:66:27: error: format '%llu' expects argument of type 'long long unsigned int', but argument 6 has type '__u64 {aka long unsigned int}' [-Werror=format=]
snprintf(path, PATH_MAX, "%s/event-%d-%llu-%d", dir,
^
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Tested-by: Michael Cree <mcree@orcon.net.nz>
Cc: stable@vger.kernel.org
Gbp-Pq: Topic bugfix/alpha
Gbp-Pq: Name alpha-uapi-add-support-for-__sane_userspace_types__.patch
Ben Hutchings [Fri, 25 Sep 2015 21:50:50 +0000 (22:50 +0100)]
Revert "perf build: Fix libunwind feature detection on 32-bit x86"
This reverts commit
05b41775e2edd69a83f592e3534930c934d4038e.
It broke feature detection that was working just fine for us.
Gbp-Pq: Topic bugfix/x86
Gbp-Pq: Name revert-perf-build-fix-libunwind-feature-detection-on.patch
Ben Hutchings [Fri, 25 Sep 2015 19:28:10 +0000 (20:28 +0100)]
tools/hv: Fix fortify format warning
With fortify enabled, gcc warns:
tools/hv/hv_kvp_daemon.c:705:2: error: format not a string literal and no format arguments [-Werror=format-security]
snprintf(dev_id, sizeof(dev_id), kvp_net_dir);
^
kvp_net_dir is a pointer to a string literal, but lacks const
qualification. As it is never modified, it should be a const
array rather than a pointer.
Also, while snprintf() has a bounds check, the following strcat()s
do not. Combine them into a single snprintf().
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/x86
Gbp-Pq: Name tools-hv-fix-fortify-format-warning.patch
Ben Hutchings [Fri, 25 Sep 2015 20:36:29 +0000 (21:36 +0100)]
tools/lib/lockdep: Use LDFLAGS
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name tools-lib-lockdep-use-ldflags.patch
Ben Hutchings [Fri, 25 Sep 2015 20:26:48 +0000 (21:26 +0100)]
tools/lib/traceevent: Use LDFLAGS
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name tools-lib-traceevent-use-ldflags.patch
Ben Hutchings [Fri, 25 Sep 2015 19:09:23 +0000 (20:09 +0100)]
tools/perf: Remove shebang lines from perf scripts
perf scripts need to be invoked through perf, not directly through
perl (or other language interpreter). So including shebang lines in
them is useless and possibly misleading.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name tools-perf-remove-shebangs.patch
Ben Hutchings [Thu, 13 Aug 2015 18:48:12 +0000 (20:48 +0200)]
liblockdep: Remove double-quotes from soname
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name lockdep-fix-soname.patch
Ben Hutchings [Thu, 13 Aug 2015 18:48:12 +0000 (20:48 +0200)]
liblockdep: Fix object file paths used in an out-of-tree build
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name lockdep-fix-oot-build.patch
Ben Hutchings [Mon, 13 Jul 2015 19:29:20 +0000 (20:29 +0100)]
perf tools: Use $KBUILD_BUILD_TIMESTAMP as man page date
This allows man pages to be built reproducibly.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name tools-perf-man-date.patch
Ben Hutchings [Mon, 8 Sep 2014 17:31:24 +0000 (18:31 +0100)]
kbuild: Fix recordmcount dependency for OOT modules
We never rebuild anything in-tree when building an out-of-tree
modules, so external modules should not depend on the recordmcount
sources.
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name kbuild-fix-recordmcount-dependency.patch
Ben Hutchings [Sun, 24 Jun 2012 01:51:39 +0000 (02:51 +0100)]
usbip: Document TCP wrappers
Add references to TCP wrappers configuration in the manual page.
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name usbip-document-tcp-wrappers.patch
Eric W. Biederman [Wed, 28 Sep 2016 05:27:17 +0000 (00:27 -0500)]
mnt: Add a per mount namespace limit on the number of mounts
CAI Qian <caiqian@redhat.com> pointed out that the semantics
of shared subtrees make it possible to create an exponentially
increasing number of mounts in a mount namespace.
mkdir /tmp/1 /tmp/2
mount --make-rshared /
for i in $(seq 1 20) ; do mount --bind /tmp/1 /tmp/2 ; done
Will create create 2^20 or
1048576 mounts, which is a practical problem
as some people have managed to hit this by accident.
As such CVE-2016-6213 was assigned.
Ian Kent <raven@themaw.net> described the situation for autofs users
as follows:
> The number of mounts for direct mount maps is usually not very large because of
> the way they are implemented, large direct mount maps can have performance
> problems. There can be anywhere from a few (likely case a few hundred) to less
> than 10000, plus mounts that have been triggered and not yet expired.
>
> Indirect mounts have one autofs mount at the root plus the number of mounts that
> have been triggered and not yet expired.
>
> The number of autofs indirect map entries can range from a few to the common
> case of several thousand and in rare cases up to between 30000 and 50000. I've
> not heard of people with maps larger than 50000 entries.
>
> The larger the number of map entries the greater the possibility for a large
> number of active mounts so it's not hard to expect cases of a 1000 or somewhat
> more active mounts.
So I am setting the default number of mounts allowed per mount
namespace at 100,000. This is more than enough for any use case I
know of, but small enough to quickly stop an exponential increase
in mounts. Which should be perfect to catch misconfigurations and
malfunctioning programs.
For anyone who needs a higher limit this can be changed by writing
to the new /proc/sys/fs/mount-max sysctl.
Tested-by: CAI Qian <caiqian@redhat.com>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
[carnil: Adjust context for 4.8]
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name mnt-Add-a-per-mount-namespace-limit-on-the-number-of.patch
Vlad Tsyrklevich [Wed, 12 Oct 2016 16:51:24 +0000 (18:51 +0200)]
vfio/pci: Fix integer overflows, bitmask check
The VFIO_DEVICE_SET_IRQS ioctl did not sufficiently sanitize
user-supplied integers, potentially allowing memory corruption. This
patch adds appropriate integer overflow checks, checks the range bounds
for VFIO_IRQ_SET_DATA_NONE, and also verifies that only single element
in the VFIO_IRQ_SET_DATA_TYPE_MASK bitmask is set.
VFIO_IRQ_SET_ACTION_TYPE_MASK is already correctly checked later in
vfio_pci_set_irqs_ioctl().
Furthermore, a kzalloc is changed to a kcalloc because the use of a
kzalloc with an integer multiplication allowed an integer overflow
condition to be reached without this patch. kcalloc checks for overflow
and should prevent a similar occurrence.
Signed-off-by: Vlad Tsyrklevich <vlad@tsyrklevich.net>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name vfio-pci-Fix-integer-overflows-bitmask-check.patch
Andrey Ryabinin [Thu, 24 Nov 2016 13:23:10 +0000 (13:23 +0000)]
mpi: Fix NULL ptr dereference in mpi_powm() [ver #3]
This fixes CVE-2016-8650.
If mpi_powm() is given a zero exponent, it wants to immediately return
either 1 or 0, depending on the modulus. However, if the result was
initalised with zero limb space, no limbs space is allocated and a
NULL-pointer exception ensues.
Fix this by allocating a minimal amount of limb space for the result when
the 0-exponent case when the result is 1 and not touching the limb space
when the result is 0.
This affects the use of RSA keys and X.509 certificates that carry them.
BUG: unable to handle kernel NULL pointer dereference at (null)
IP: [<
ffffffff8138ce5d>] mpi_powm+0x32/0x7e6
PGD 0
Oops: 0002 [#1] SMP
Modules linked in:
CPU: 3 PID: 3014 Comm: keyctl Not tainted 4.9.0-rc6-fscache+ #278
Hardware name: ASUS All Series/H97-PLUS, BIOS 2306 10/09/2014
task:
ffff8804011944c0 task.stack:
ffff880401294000
RIP: 0010:[<
ffffffff8138ce5d>] [<
ffffffff8138ce5d>] mpi_powm+0x32/0x7e6
RSP: 0018:
ffff880401297ad8 EFLAGS:
00010212
RAX:
0000000000000000 RBX:
ffff88040868bec0 RCX:
ffff88040868bba0
RDX:
ffff88040868b260 RSI:
ffff88040868bec0 RDI:
ffff88040868bee0
RBP:
ffff880401297ba8 R08:
0000000000000000 R09:
0000000000000000
R10:
0000000000000047 R11:
ffffffff8183b210 R12:
0000000000000000
R13:
ffff8804087c7600 R14:
000000000000001f R15:
ffff880401297c50
FS:
00007f7a7918c700(0000) GS:
ffff88041fb80000(0000) knlGS:
0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0:
0000000080050033
CR2:
0000000000000000 CR3:
0000000401250000 CR4:
00000000001406e0
Stack:
ffff88040868bec0 0000000000000020 ffff880401297b00 ffffffff81376cd4
0000000000000100 ffff880401297b10 ffffffff81376d12 ffff880401297b30
ffffffff81376f37 0000000000000100 0000000000000000 ffff880401297ba8
Call Trace:
[<
ffffffff81376cd4>] ? __sg_page_iter_next+0x43/0x66
[<
ffffffff81376d12>] ? sg_miter_get_next_page+0x1b/0x5d
[<
ffffffff81376f37>] ? sg_miter_next+0x17/0xbd
[<
ffffffff8138ba3a>] ? mpi_read_raw_from_sgl+0xf2/0x146
[<
ffffffff8132a95c>] rsa_verify+0x9d/0xee
[<
ffffffff8132acca>] ? pkcs1pad_sg_set_buf+0x2e/0xbb
[<
ffffffff8132af40>] pkcs1pad_verify+0xc0/0xe1
[<
ffffffff8133cb5e>] public_key_verify_signature+0x1b0/0x228
[<
ffffffff8133d974>] x509_check_for_self_signed+0xa1/0xc4
[<
ffffffff8133cdde>] x509_cert_parse+0x167/0x1a1
[<
ffffffff8133d609>] x509_key_preparse+0x21/0x1a1
[<
ffffffff8133c3d7>] asymmetric_key_preparse+0x34/0x61
[<
ffffffff812fc9f3>] key_create_or_update+0x145/0x399
[<
ffffffff812fe227>] SyS_add_key+0x154/0x19e
[<
ffffffff81001c2b>] do_syscall_64+0x80/0x191
[<
ffffffff816825e4>] entry_SYSCALL64_slow_path+0x25/0x25
Code: 56 41 55 41 54 53 48 81 ec a8 00 00 00 44 8b 71 04 8b 42 04 4c 8b 67 18 45 85 f6 89 45 80 0f 84 b4 06 00 00 85 c0 75 2f 41 ff ce <49> c7 04 24 01 00 00 00 b0 01 75 0b 48 8b 41 18 48 83 38 01 0f
RIP [<
ffffffff8138ce5d>] mpi_powm+0x32/0x7e6
RSP <
ffff880401297ad8>
CR2:
0000000000000000
---[ end trace
d82015255d4a5d8d ]---
Basically, this is a backport of a libgcrypt patch:
http://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=patch;h=
6e1adb05d290aeeb1c230c763970695f4a538526
Fixes: cdec9cb5167a ("crypto: GnuPG based MPI lib - source files (part 1)")
Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Dmitry Kasatkin <dmitry.kasatkin@gmail.com>
cc: linux-ima-devel@lists.sourceforge.net
cc: stable@vger.kernel.org
Signed-off-by: James Morris <james.l.morris@oracle.com>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name mpi-Fix-NULL-ptr-dereference-in-mpi_powm-ver-3.patch
Jan Kara [Thu, 26 May 2016 15:21:32 +0000 (17:21 +0200)]
fs: Avoid premature clearing of capabilities
Currently, notify_change() clears capabilities or IMA attributes by
calling security_inode_killpriv() before calling into ->setattr. Thus it
happens before any other permission checks in inode_change_ok() and user
is thus allowed to trigger clearing of capabilities or IMA attributes
for any file he can look up e.g. by calling chown for that file. This is
unexpected and can lead to user DoSing a system.
Fix the problem by calling security_inode_killpriv() at the end of
inode_change_ok() instead of from notify_change(). At that moment we are
sure user has permissions to do the requested change.
References: CVE-2015-1350
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name fs-Avoid-premature-clearing-of-capabilities.patch
Jan Kara [Thu, 26 May 2016 14:55:18 +0000 (16:55 +0200)]
fs: Give dentry to inode_change_ok() instead of inode
inode_change_ok() will be resposible for clearing capabilities and IMA
extended attributes and as such will need dentry. Give it as an argument
to inode_change_ok() instead of an inode. Also rename inode_change_ok()
to setattr_prepare() to better relect that it does also some
modifications in addition to checks.
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
[carnil: backport for 4.8]
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name fs-Give-dentry-to-inode_change_ok-instead-of-inode.patch
Jan Kara [Thu, 26 May 2016 15:12:41 +0000 (17:12 +0200)]
fuse: Propagate dentry down to inode_change_ok()
To avoid clearing of capabilities or security related extended
attributes too early, inode_change_ok() will need to take dentry instead
of inode. Propagate it down to fuse_do_setattr().
Acked-by: Miklos Szeredi <mszeredi@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
[carnil: backport for 4.8]
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name fuse-Propagate-dentry-down-to-inode_change_ok.patch
Jan Kara [Thu, 26 May 2016 14:10:38 +0000 (16:10 +0200)]
ceph: Propagate dentry down to inode_change_ok()
To avoid clearing of capabilities or security related extended
attributes too early, inode_change_ok() will need to take dentry instead
of inode. ceph_setattr() has the dentry easily available but
__ceph_setattr() is also called from ceph_set_acl() where dentry is not
easily available. Luckily that call path does not need inode_change_ok()
to be called anyway. So reorganize functions a bit so that
inode_change_ok() is called only from paths where dentry is available.
Reviewed-by: Christoph Hellwig <hch@lst.de>
Acked-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name ceph-Propagate-dentry-down-to-inode_change_ok.patch
Jan Kara [Thu, 26 May 2016 12:46:43 +0000 (14:46 +0200)]
xfs: Propagate dentry down to inode_change_ok()
To avoid clearing of capabilities or security related extended
attributes too early, inode_change_ok() will need to take dentry instead
of inode. Propagate dentry down to functions calling inode_change_ok().
This is rather straightforward except for xfs_set_mode() function which
does not have dentry easily available. Luckily that function does not
call inode_change_ok() anyway so we just have to do a little dance with
function prototypes.
Acked-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name xfs-Propagate-dentry-down-to-inode_change_ok.patch
Ben Hutchings [Tue, 16 Feb 2016 02:45:42 +0000 (02:45 +0000)]
PCI: Set pci=nobios by default
CONFIG_PCI_GOBIOS results in physical addresses 640KB-1MB being mapped
W+X, which is undesirable for security reasons and will result in a
warning at boot now that we enable CONFIG_DEBUG_WX.
This can be overridden using the kernel parameter "pci=nobios", but we
want to disable W+X by default. Disable PCI BIOS probing by default;
it can still be enabled using "pci=bios".
Gbp-Pq: Topic debian
Gbp-Pq: Name i386-686-pae-pci-set-pci-nobios-by-default.patch
Jann Horn [Sat, 26 Dec 2015 02:52:31 +0000 (03:52 +0100)]
ptrace: being capable wrt a process requires mapped uids/gids
ptrace_has_cap() checks whether the current process should be
treated as having a certain capability for ptrace checks
against another process. Until now, this was equivalent to
has_ns_capability(current, target_ns, CAP_SYS_PTRACE).
However, if a root-owned process wants to enter a user
namespace for some reason without knowing who owns it and
therefore can't change to the namespace owner's uid and gid
before entering, as soon as it has entered the namespace,
the namespace owner can attach to it via ptrace and thereby
gain access to its uid and gid.
While it is possible for the entering process to switch to
the uid of a claimed namespace owner before entering,
causing the attempt to enter to fail if the claimed uid is
wrong, this doesn't solve the problem of determining an
appropriate gid.
With this change, the entering process can first enter the
namespace and then safely inspect the namespace's
properties, e.g. through /proc/self/{uid_map,gid_map},
assuming that the namespace owner doesn't have access to
uid 0.
Changed in v2: The caller needs to be capable in the
namespace into which tcred's uids/gids can be mapped.
Signed-off-by: Jann Horn <jann@thejh.net>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name ptrace-being-capable-wrt-a-process-requires-mapped-uids-gids.patch
Linn Crosetto [Tue, 30 Aug 2016 17:54:38 +0000 (11:54 -0600)]
arm64: add kernel config option to set securelevel when in Secure Boot mode
Add a kernel configuration option to enable securelevel, to restrict
userspace's ability to modify the running kernel when UEFI Secure Boot is
enabled. Based on the x86 patch by Matthew Garrett.
Determine the state of Secure Boot in the EFI stub and pass this to the
kernel using the FDT.
Signed-off-by: Linn Crosetto <linn@hpe.com>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name arm64-add-kernel-config-option-to-set-securelevel-wh.patch
Linn Crosetto [Mon, 22 Feb 2016 19:54:37 +0000 (12:54 -0700)]
arm64/efi: Disable secure boot if shim is in insecure mode
Port to arm64 a patch originally written by Josh Boyer for the x86 EFI
stub.
A user can manually tell the shim boot loader to disable validation of
images it loads. When a user does this, it creates a UEFI variable called
MokSBState that does not have the runtime attribute set. Given that the
user explicitly disabled validation, we can honor that and not enable
secure boot mode if that variable is set.
Signed-off-by: Linn Crosetto <linn@hpe.com>
Cc: Josh Boyer <jwboyer@fedoraproject.org>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name arm64-efi-disable-secure-boot-if-shim-is-in-insecure.patch
Ben Hutchings [Thu, 2 Jun 2016 23:48:39 +0000 (00:48 +0100)]
mtd: Disable slram and phram when securelevel is enabled
The slram and phram drivers both allow mapping regions of physical
address space such that they can then be read and written by userland
through the MTD interface. This is probably usable to manipulate
hardware into overwriting kernel code on many systems. Prevent that
if securelevel is set.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name mtd-disable-slram-and-phram-when-securelevel-is-enabled.patch
Matthew Garrett [Tue, 12 Jan 2016 20:51:27 +0000 (12:51 -0800)]
Enable cold boot attack mitigation
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name enable-cold-boot-attack-mitigation.patch
Linn Crosetto [Wed, 16 Mar 2016 20:43:33 +0000 (14:43 -0600)]
acpi: Disable APEI error injection if securelevel is set
ACPI provides an error injection mechanism, EINJ, for debugging and testing
the ACPI Platform Error Interface (APEI) and other RAS features. If
supported by the firmware, ACPI specification 5.0 and later provide for a
way to specify a physical memory address to which to inject the error.
Injecting errors through EINJ can produce errors which to the platform are
indistinguishable from real hardware errors. This can have undesirable
side-effects, such as causing the platform to mark hardware as needing
replacement.
While it does not provide a method to load unauthenticated privileged code,
the effect of these errors may persist across reboots and affect trust in
the underlying hardware, so disable error injection through EINJ if
securelevel is set.
Signed-off-by: Linn Crosetto <linn@hpe.com>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name acpi-disable-apei-error-injection-if-securelevel-is-.patch
Linn Crosetto [Fri, 4 Mar 2016 23:08:24 +0000 (16:08 -0700)]
acpi: Disable ACPI table override if securelevel is set
From the kernel documentation (initrd_table_override.txt):
If the ACPI_INITRD_TABLE_OVERRIDE compile option is true, it is possible
to override nearly any ACPI table provided by the BIOS with an
instrumented, modified one.
When securelevel is set, the kernel should disallow any unauthenticated
changes to kernel space. ACPI tables contain code invoked by the kernel, so
do not allow ACPI tables to be overridden if securelevel is set.
Signed-off-by: Linn Crosetto <linn@hpe.com>
[bwh: Forward-ported to 4.7: ACPI override code moved to drivers/acpi/tables.c]
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name acpi-disable-acpi-table-override-if-securelevel-is-s.patch
Dave Young [Tue, 6 Oct 2015 12:31:31 +0000 (13:31 +0100)]
kexec/uefi: copy secure_boot flag in boot params across kexec reboot
Kexec reboot in case secure boot being enabled does not keep the secure
boot mode in new kernel, so later one can load unsigned kernel via legacy
kexec_load. In this state, the system is missing the protections provided
by secure boot. Adding a patch to fix this by retain the secure_boot flag
in original kernel.
secure_boot flag in boot_params is set in EFI stub, but kexec bypasses the
stub. Fixing this issue by copying secure_boot flag across kexec reboot.
Signed-off-by: Dave Young <dyoung@redhat.com>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name kexec-uefi-copy-secure_boot-flag-in-boot-params-acro.patch
Josh Boyer [Fri, 20 Jun 2014 12:53:24 +0000 (08:53 -0400)]
hibernate: Disable when securelevel is set
There is currently no way to verify the resume image when returning
from hibernate. This might compromise the securelevel trust model,
so until we can work with signed hibernate images we disable it in
a secure modules environment.
Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name hibernate-disable-when-securelevel-is-set.patch
Josh Boyer [Wed, 6 Feb 2013 00:25:05 +0000 (19:25 -0500)]
efi: Disable secure boot if shim is in insecure mode
A user can manually tell the shim boot loader to disable validation of
images it loads. When a user does this, it creates a UEFI variable called
MokSBState that does not have the runtime attribute set. Given that the
user explicitly disabled validation, we can honor that and not enable
secure boot mode if that variable is set.
Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name efi-disable-secure-boot-if-shim-is-in-insecure-mode.patch
Matthew Garrett [Fri, 9 Aug 2013 22:36:30 +0000 (18:36 -0400)]
Add option to automatically set securelevel when in Secure Boot mode
UEFI Secure Boot provides a mechanism for ensuring that the firmware will
only load signed bootloaders and kernels. Certain use cases may also
require that the kernel prevent userspace from inserting untrusted kernel
code at runtime. Add a configuration option that enforces this automatically
when enabled.
Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name add-option-to-automatically-set-securelevel-when-in-.patch
Matthew Garrett [Fri, 9 Mar 2012 13:46:50 +0000 (08:46 -0500)]
asus-wmi: Restrict debugfs interface when securelevel is set
We have no way of validating what all of the Asus WMI methods do on a
given machine, and there's a risk that some will allow hardware state to
be manipulated in such a way that arbitrary code can be executed in the
kernel. Prevent that if securelevel is set.
Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name asus-wmi-restrict-debugfs-interface-when-securelevel.patch
Matthew Garrett [Fri, 8 Feb 2013 19:12:13 +0000 (11:12 -0800)]
x86: Restrict MSR access when securelevel is set
Permitting write access to MSRs allows userspace to modify the running
kernel. Prevent this if securelevel has been set. Based on a patch by Kees
Cook.
Cc: Kees Cook <keescook@chromium.org>
Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name x86-restrict-msr-access-when-securelevel-is-set.patch
Matthew Garrett [Tue, 3 Sep 2013 15:23:29 +0000 (11:23 -0400)]
uswsusp: Disable when securelevel is set
uswsusp allows a user process to dump and then restore kernel state, which
makes it possible to modify the running kernel. Disable this if securelevel
has been set.
Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name uswsusp-disable-when-securelevel-is-set.patch
Matthew Garrett [Fri, 9 Aug 2013 07:33:56 +0000 (03:33 -0400)]
kexec: Disable at runtime if securelevel has been set.
kexec permits the loading and execution of arbitrary code in ring 0, which
permits the modification of the running kernel. Prevent this if securelevel
has been set.
Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name kexec-disable-at-runtime-if-securelevel-has-been-set.patch
Josh Boyer [Mon, 25 Jun 2012 23:57:30 +0000 (19:57 -0400)]
acpi: Ignore acpi_rsdp kernel parameter when securelevel is set
This option allows userspace to pass the RSDP address to the kernel, which
makes it possible for a user to execute arbitrary code in the kernel.
Disable this when securelevel is set.
Signed-off-by: Josh Boyer <jwboyer@redhat.com>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name acpi-ignore-acpi_rsdp-kernel-parameter-when-securele.patch
Matthew Garrett [Fri, 9 Mar 2012 13:39:37 +0000 (08:39 -0500)]
acpi: Limit access to custom_method if securelevel is set
custom_method effectively allows arbitrary access to system memory, making
it possible for an attacker to modify the kernel at runtime. Prevent this
if securelevel has been set.
Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name acpi-limit-access-to-custom_method-if-securelevel-is.patch
Matthew Garrett [Fri, 9 Mar 2012 14:28:15 +0000 (09:28 -0500)]
Restrict /dev/mem and /dev/kmem when securelevel is set.
Allowing users to write to address space provides mechanisms that may permit
modification of the kernel at runtime. Prevent this if securelevel has been
set.
Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name restrict-dev-mem-and-dev-kmem-when-securelevel-is-se.patch
Matthew Garrett [Thu, 8 Mar 2012 15:35:59 +0000 (10:35 -0500)]
x86: Lock down IO port access when securelevel is enabled
IO port access would permit users to gain access to PCI configuration
registers, which in turn (on a lot of hardware) give access to MMIO register
space. This would potentially permit root to trigger arbitrary DMA, so lock
it down when securelevel is set.
Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name x86-lock-down-io-port-access-when-securelevel-is-ena.patch
Matthew Garrett [Thu, 8 Mar 2012 15:10:38 +0000 (10:10 -0500)]
PCI: Lock down BAR access when securelevel is enabled
Any hardware that can potentially generate DMA has to be locked down from
userspace in order to avoid it being possible for an attacker to modify
kernel code. This should be prevented if securelevel has been set. Default
to paranoid - in future we can potentially relax this for sufficiently
IOMMU-isolated devices.
Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name pci-lock-down-bar-access-when-securelevel-is-enabled.patch
Matthew Garrett [Mon, 9 Sep 2013 12:46:52 +0000 (08:46 -0400)]
Enforce module signatures when securelevel is greater than 0
If securelevel has been set to 1 or greater, require that all modules have
valid signatures.
Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name enforce-module-signatures-when-securelevel-is-greate.patch
Matthew Garrett [Fri, 9 Aug 2013 21:58:15 +0000 (17:58 -0400)]
Add BSD-style securelevel support
Provide a coarse-grained runtime configuration option for restricting
userspace's ability to modify the running kernel.
Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Gbp-Pq: Topic features/all/securelevel
Gbp-Pq: Name add-bsd-style-securelevel-support.patch
Vladimir Davydov [Sat, 1 Oct 2016 13:39:09 +0000 (16:39 +0300)]
mm: memcontrol: use special workqueue for creating per-memcg caches
Creating a lot of cgroups at the same time might stall all worker
threads with kmem cache creation works, because kmem cache creation is
done with the slab_mutex held. The problem was amplified by commits
801faf0db894 ("mm/slab: lockless decision to grow cache") in case of
SLAB and
81ae6d03952c ("mm/slub.c: replace kick_all_cpus_sync() with
synchronize_sched() in kmem_cache_shrink()") in case of SLUB, which
increased the maximal time the slab_mutex can be held.
To prevent that from happening, let's use a special ordered single
threaded workqueue for kmem cache creation. This shouldn't introduce any
functional changes regarding how kmem caches are created, as the work
function holds the global slab_mutex during its whole runtime anyway,
making it impossible to run more than one work at a time. By using a
single threaded workqueue, we just avoid creating a thread per each
work. Ordering is required to avoid a situation when a cgroup's work is
put off indefinitely because there are other cgroups to serve, in other
words to guarantee fairness.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=172981
Signed-off-by: Vladimir Davydov <vdavydov.dev@gmail.com>
Reported-by: Doug Smythies <dsmythies@telus.net>
Cc: Christoph Lameter <cl@linux.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Pekka Enberg <penberg@kernel.org>
Acked-by: Michal Hocko <mhocko@suse.com>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name mm-memcontrol-use-special-workqueue-for-creating-per-memcg-caches.patch
Darrick J. Wong [Tue, 20 Sep 2016 05:52:16 +0000 (22:52 -0700)]
Trouble mounting metadata_csum ext4 filesystems with v4.7.x after
c9274d891869880648c4ee9365df3ecc7ba2e285: not enough inode bytes checksummed?
[cc Ted and the ext4 list]
On Mon, Sep 19, 2016 at 03:19:03PM +0100, Nix wrote:
> So I ran into spurious metadata corruption warnings in v4.7.2 due to the
> problem fixed by
c9274d8. I applied an early version of the fix,
> rebooted, and oh dear root filesystem mount failure with invalid
> checksum errors.
>
> The problem persists in v4.7.4, as seen here in qemu emulation on a raw
> image dd'ed directly from the thing that won't boot, with a couple of
> printk()s:
>
> # mount /dev/vda /new-root/
> [ 8.124692] EXT4-fs (vda): couldn't mount as ext3 due to feature incompatibilities
> [ 8.126977] EXT4-fs (vda): couldn't mount as ext2 due to feature incompatibilities
> [ 9.017980] Inode size 256 > good old size 128; fits in inode: 0
> [ 8.134897] inode 8: provided: 5c50l; calculated: 36e1i
> [ 8.135098] EXT4-fs error (device vda): ext4_iget:4479: inode #8: comm mount: checksum invalid
> [ 8.138992] EXT4-fs (vda): no journal found
> [ 8.165744] UDF-fs: warning (device vda): udf_fill_super: No partition found (2)
> mount: mounting /dev/vda on /new-root/ failed: Invalid argument
>
> I added a bit of printking to show the failure of the journal inode
> checksum to pass muster. e2fsck (from e2fsprogs 1.43.1-14) is quite
> happy with this filesystem. Reverting
c9274d8 makes everything happy
> again (well, it does bring the original bug back, which is a rather
> serious one, but other than that...):
>
> [ 9.823032] EXT4-fs (vda): couldn't mount as ext3 due to feature incompatibilities
> [ 9.824647] EXT4-fs (vda): couldn't mount as ext2 due to feature incompatibilities
> [ 9.832593] inode 8: provided: 5c50l; calculated: 5c50i
> [ 9.839253] inode 2: provided: d6ea92e9l; calculated: d6ea92e9i
> [ 9.846947] EXT4-fs (vda): mounted filesystem with ordered data mode. Opts: (null)
>
> So
c9274d8 is clearly messing up the calculation of the checksum.
>
> The problem becomes more evident if we add more printk()s to the old
> code, so we can see what region is being checksummed:
>
> # mount /dev/vda /new-root
> [ 6.827297] inode 8: unadjusted csum of 256 bytes with seed
a5df92a7:
449a5c50
> [ 6.827596] adjusted csum: 5c50
> [ 6.835993] inode 2: unadjusted csum of 256 bytes with seed
759c6c33:
d6ea92e9
> [ 6.836173] adjusted csum:
d6ea92e9
> [ 6.844801] EXT4-fs (vda): mounted filesystem with ordered data mode. Opts:
>
> and the new:
>
> [ 11.098013] inode 8: csum of first 124 bytes with seed
a5df92a7:
f375b663
> [ 11.098205] inode 8: added csum of 2 dummy_csum bytes with seed
a5df92a7:
20cfebcb
> [ 11.098420] inode 8: added csum of 2 bytes from offset 126 -- 128 to existing:
d79e7432
> [ 11.098646] inode 8: > GOOD_OLD_INODE_SIZE; added csum of 2 bytes from 128 -- 130 to existing:
d10936e1
> [ 11.098890] 8: adjusted csum: 36e1
> [ 11.099133] EXT4-fs error (device vda): ext4_iget:4483: inode #8: comm mount: checksum invalid
>
> We are not checksumming enough bytes! We used to checksum the entire
> 256-byte inode: now, we checksum only 130 bytes of it, which isn't even
> enough to cover the 28-byte extra_isize on this filesystem and is more
> or less guaranteed to give the wrong answer. I'd fix the problem, but I
> frankly can't see how the new code is meant to be equivalent to the old
> code in any sense -- most particularly what the stuff around dummy_csum
> is meant to do -- so I thought it better to let the people who wrote it
> fix it :)
Sh*t, I missed this during the review. So your filesystem image (thank
you!) had this to say:
debugfs> stats
Inode size: 256
debugfs> stat <8>
Size of extra inode fields: 0
Basically, a 128-byte inode inside a filesystem that allocated 256 bytes
for each inode. As you point out, the old code would checksum the entire
allocated space, whether or not the inode core used it. Obviously, you
want this since inline extended attributes live in that space:
csum = ext4_chksum(sbi, ei->i_csum_seed, (__u8 *)raw,
EXT4_INODE_SIZE(inode->i_sb));
The new code, on the other hand, carefully checksums around the
i_checksum fields and only bothers to checksum the space between the end
of i_checksum_hi and the end of the allocated space if the inode core is
big enough to store i_checksum_hi. Since we allocated 256 bytes for
each inode, we checksum the first two bytes after byte 128
(EXT4_GOOD_OLD_INODE_SIZE), but then we see that i_extra_size == 0 so we
never bother to checksum anything after that. This is of course wrong
since we no longer checksum the xattr space and we've deviated from the
pre-4.7.4 (documented) on-disk format.
*FORTUNATELY* since the root inode fails the read verifier, the file (in
this case the root dir) can't be modified and therefore nothing has been
corrupted. Especially fortunate for you, the fs won't mount, reducing
the chances that any serious damage has occurred.
I /think/ the fix in this case is to hoist the last ext4_chksum call
out of the EXT4_FITS_IN_INODE blob:
if (EXT4_INODE_SIZE(inode->i_sb) > EXT4_GOOD_OLD_INODE_SIZE) {
offset = offsetof(struct ext4_inode, i_checksum_hi);
csum = ext4_chksum(sbi, csum, (__u8 *)raw +
EXT4_GOOD_OLD_INODE_SIZE,
offset - EXT4_GOOD_OLD_INODE_SIZE);
if (EXT4_FITS_IN_INODE(raw, ei, i_checksum_hi)) {
csum = ext4_chksum(sbi, csum, (__u8 *)&dummy_csum,
csum_size);
offset += csum_size;
}
csum = ext4_chksum(sbi, csum, (__u8 *)raw + offset,
EXT4_INODE_SIZE(inode->i_sb) - offset);
}
Can you give that a try?
> tune2fs output for this filesystem, particularly the extra_isize and
> inode size fields are likely relevant:
>
> tune2fs 1.43.1 (08-Jun-2016)
> Filesystem volume name: root
> Last mounted on: /
> Filesystem UUID:
6c0f7fa7-d6c2-4054-bff3-
3a878460bdc7
> Filesystem magic number: 0xEF53
> Filesystem revision #: 1 (dynamic)
> Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
> Filesystem flags: signed_directory_hash
> Default mount options: (none)
> Filesystem state: clean
> Errors behavior: Continue
> Filesystem OS type: Linux
> Inode count: 65536
> Block count: 262144
> Reserved block count: 13107
> Free blocks: 227009
> Free inodes: 59499
> First block: 0
> Block size: 4096
> Fragment size: 4096
> Group descriptor size: 64
> Reserved GDT blocks: 63
> Blocks per group: 32768
> Fragments per group: 32768
> Inodes per group: 8192
> Inode blocks per group: 512
> RAID stripe width: 16
> Flex block group size: 64
> Filesystem created: Tue May 26 21:28:46 2009
> Last mount time: Sun Sep 18 23:34:41 2016
> Last write time: Mon Sep 19 13:51:59 2016
> Mount count: 0
> Maximum mount count: 36
> Last checked: Mon Sep 19 13:51:59 2016
> Check interval:
15552000 (6 months)
> Next check after: Sat Mar 18 12:51:59 2017
> Lifetime writes: 16 GB
> Reserved blocks uid: 0 (user root)
> Reserved blocks gid: 0 (group root)
> First inode: 11
> Inode size: 256
> Required extra isize: 28
> Desired extra isize: 28
> Journal inode: 8
> Default directory hash: half_md4
> Directory Hash Seed:
f1da2da0-057e-4ba0-a021-
3d56db5b24ab
> Journal backup: inode blocks
> Checksum type: crc32c
> Checksum: 0x92acf115
>
> This is an old, upgraded fs from before the days of checksums, but even
> so I'm surprised that with a 256-byte inode and no xattrs in use,
> EXT4_FITS_IN_INODE is false. Maybe the extra_isize isn't big enough?
It's zero, so yes. :)
> An lzipped e2image of the problematic filesystem is available from
> <http://www.esperi.org.uk/~nix/temporary/csum-corruption.img.lz>:
> I have verified that the problem recurs with this image.
>
> I can also replicate the problem in literally seconds if you need more
> debugging output.
>
>
> ... The mystery is why this isn't going wrong anywhere else: I have
> metadata_csum working on every fs on a bunch of other ext4-using
> systems, and indeed on every filesystem on this machine as well, as long
> as
c9274d8 is not applied. Many of them are similarly upgraded pre-csum
> fses with the same inode size and extra_isize, but they work...
Hard to say, but this bug only affects inodes with 0 < i_extra_size <= 4
i.e. 128 < inode-core-size <= 130. Maybe an old ext3 fs that was
created with 256 bytes per inode but inode-core-size of 128?
Uck. Sorry about this mess.
--D
[bwh: Converted to a patch]
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name ext4-fix-bug-838544.patch
Ben Hutchings [Fri, 26 Aug 2016 00:31:28 +0000 (01:31 +0100)]
kbuild: Do not use hyphen in exported variable name
This definition in Makefile.dtbinst:
export dtbinst-root ?= $(obj)
should define and export dtbinst-root when handling the root dts
directory, and do nothing in the subdirectories. However, the
variable does not reliably get exported to the environment, perhaps
because its name contains a hyphen.
Rename the variable to dtbinst_root.
References: https://bugs.debian.org/833561
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name kbuild-do-not-use-hyphen-in-exported-variable-name.patch
Ben Hutchings [Wed, 13 Apr 2016 20:48:06 +0000 (21:48 +0100)]
fs: Add MODULE_SOFTDEP declarations for hard-coded crypto drivers
This helps initramfs builders and other tools to find the full
dependencies of a module.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name fs-add-module_softdep-declarations-for-hard-coded-cr.patch
Ian Campbell [Wed, 20 Nov 2013 08:30:14 +0000 (08:30 +0000)]
phy/marvell: disable 4-port phys
The Marvell PHY was originally disabled because it can cause networking
failures on some systems. According to Lennert Buytenhek this is because some
of the variants added did not share the same register layout. Since the known
cases are all 4-ports disable those variants (indicated by a 4 in the
penultimate position of the model name) until they can be audited for
correctness.
[bwh: Also #if-out the init functions for these PHYs to avoid
compiler warnings]
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name disable-some-marvell-phys.patch
Ben Hutchings [Sat, 19 Oct 2013 18:43:35 +0000 (19:43 +0100)]
kbuild: Use -nostdinc in compile tests
Debian's gcc 4.8 pre-includes <stdc-predef.h> by default, which in
turn includes <bits/predefs.h>. This fails when building a 64-bit
kernel and only 32-bit C library headers installed.
The -nostdinc option disables this, though it isn't explicitly
documented. This option is already used when actually building
the kernel.
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name kbuild-use-nostdinc-in-compile-tests.patch
Andrej Rosano [Mon, 5 Sep 2016 10:11:17 +0000 (12:11 +0200)]
ARM: dts: imx53: add support for USB armory board
Add support for Inverse Path USB armory board, an open source
flash-drive sized computer based on NXP i.MX53 SoC.
https://inversepath.com/usbarmory
Signed-off-by: Andrej Rosano <andrej@inversepath.com>
Tested-by: Vagrant Cascadian <vagrant@debian.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Gbp-Pq: Topic features/arm
Gbp-Pq: Name arm-dts-imx53-add-support-for-usb-armory-board.patch
Ben Hutchings [Fri, 25 Jul 2014 00:16:15 +0000 (01:16 +0100)]
x86: Make x32 syscall support conditional on a kernel parameter
Enabling x32 in the standard amd64 kernel would increase its attack
surface while provide no benefit to the vast majority of its users.
No-one seems interested in regularly checking for vulnerabilities
specific to x32 (at least no-one with a white hat).
Still, adding another flavour just to turn on x32 seems wasteful. And
the only differences on syscall entry are two instructions (mask out
the x32 flag and compare the syscall number).
So pad the standard comparison with a nop and add a kernel parameter
"syscall.x32" which controls whether this is replaced with the x32
version at boot time. Add a Kconfig parameter to set the default.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic features/x86
Gbp-Pq: Name x86-make-x32-syscall-support-conditional.patch
Ben Hutchings [Mon, 5 Dec 2011 04:00:58 +0000 (04:00 +0000)]
x86: memtest: WARN if bad RAM found
Since this is not a particularly thorough test, if we find any bad
bits of RAM then there is a fair chance that there are other bad bits
we fail to detect.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic features/x86
Gbp-Pq: Name x86-memtest-WARN-if-bad-RAM-found.patch
Markos Chandras [Fri, 28 Mar 2014 17:22:52 +0000 (17:22 +0000)]
MIPS: octeon: Add support for the UBNT E200 board
Add support for the UBNT E200 board (EdgeRouter/EdgeRouter Pro 8 port).
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
[bwh: Forward-ported to 3.17: adjust context]
Gbp-Pq: Topic features/mips
Gbp-Pq: Name MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch
Aurelien Jarno [Sun, 20 Jul 2014 17:16:31 +0000 (19:16 +0200)]
MIPS: Loongson 3: Add Loongson LS3A RS780E 1-way machine definition
Add a Loongson LS3A RS780E 1-way machine definition, which only differs
from other Loongson 3 based machines by the UART base clock speed.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
[bwh: Forward-ported to 4.2]
Gbp-Pq: Topic features/mips
Gbp-Pq: Name MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch
Aurelien Jarno [Fri, 2 Dec 2016 05:35:22 +0000 (05:35 +0000)]
MIPS: increase MAX_PHYSMEM_BITS on Loongson 3 only
Commit
c4617318 broke Loongson-2 support and maybe even more by increasing
the value of MAX_PHYSMEM_BITS. At it is currently only needed on
Loongson-3, define it conditionally.
Note: this should be replace by upstream fix when available.
Gbp-Pq: Topic features/mips
Gbp-Pq: Name MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch
Ben Hutchings [Fri, 16 Sep 2016 15:32:23 +0000 (16:32 +0100)]
arm64/mm: Limit TASK_SIZE_64 for compatibility
Some programs assume they can use 17 tag bits in a 64-bit pointer,
which works on most other 64-bit architectures but not on arm64 with
CONFIG_ARM64_VA_BITS_48. To maintain compatibility with these
programs, limit TASK_SIZE_64 to a maximum of 1 << 47.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/arm64
Gbp-Pq: Name arm64-mm-limit-task_size_64-for-compatibility.patch
Ben Hutchings [Wed, 13 Jul 2016 00:37:22 +0000 (01:37 +0100)]
fanotify: Taint on use of FANOTIFY_ACCESS_PERMISSIONS
Various free and proprietary AV products use this feature and users
apparently want it. But punting access checks to userland seems like
an easy way to deadlock the system, and there will be nothing we can
do about that. So warn and taint the kernel if this feature is
actually used.
Gbp-Pq: Topic debian
Gbp-Pq: Name fanotify-taint-on-use-of-fanotify_access_permissions.patch
Ben Hutchings [Sat, 20 Apr 2013 14:52:02 +0000 (15:52 +0100)]
viafb: Autoload on OLPC XO 1.5 only
It appears that viafb won't work automatically on all the boards for
which it has a PCI device ID match. Currently, it is blacklisted by
udev along with most other framebuffer drivers, so this doesn't matter
much.
However, this driver is required for console support on the XO 1.5.
We need to allow it to be autoloaded on this model only, and then
un-blacklist it in udev.
Gbp-Pq: Topic bugfix/x86
Gbp-Pq: Name viafb-autoload-on-olpc-xo1.5-only.patch
Ben Hutchings [Wed, 5 Feb 2014 23:01:30 +0000 (23:01 +0000)]
snd-pcsp: Disable autoload
There are two drivers claiming the platform:pcspkr device:
- pcspkr creates an input(!) device that can only beep
- snd-pcsp creates an equivalent input device plus a PCM device that can
play barely recognisable renditions of sampled sound
snd-pcsp is blacklisted by the alsa-base package, but not everyone
installs that. On PCs where no sound is wanted at all, both drivers
will still be loaded and one or other will complain that it couldn't
claim the relevant I/O range.
In case anyone finds snd-pcsp useful, we continue to build it. But
remove the alias, to ensure it's not loaded where it's not wanted.
Gbp-Pq: Topic debian
Gbp-Pq: Name snd-pcsp-disable-autoload.patch
Ben Hutchings [Sun, 31 Mar 2013 02:58:04 +0000 (03:58 +0100)]
cdc_ncm,cdc_mbim: Use NCM by default
Devices that support both NCM and MBIM modes should be kept in NCM
mode unless there is userland support for MBIM.
Set the default value of cdc_ncm.prefer_mbim to false and leave it to
userland (modem-manager) to override this with a modprobe.conf file
once it's ready to speak MBIM.
Gbp-Pq: Topic debian
Gbp-Pq: Name cdc_ncm-cdc_mbim-use-ncm-by-default.patch
Ben Hutchings [Mon, 11 Jan 2016 15:23:55 +0000 (15:23 +0000)]
security,perf: Allow further restriction of perf_event_open
When kernel.perf_event_open is set to 3 (or greater), disallow all
access to performance events by users without CAP_SYS_ADMIN.
Add a Kconfig symbol CONFIG_SECURITY_PERF_EVENTS_RESTRICT that
makes this value the default.
This is based on a similar feature in grsecurity
(CONFIG_GRKERNSEC_PERF_HARDEN). This version doesn't include making
the variable read-only. It also allows enabling further restriction
at run-time regardless of whether the default is changed.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic features/all
Gbp-Pq: Name security-perf-allow-further-restriction-of-perf_event_open.patch
Serge Hallyn [Fri, 31 May 2013 18:12:12 +0000 (19:12 +0100)]
add sysctl to disallow unprivileged CLONE_NEWUSER by default
add sysctl to disallow unprivileged CLONE_NEWUSER by default
This is a short-term patch. Unprivileged use of CLONE_NEWUSER
is certainly an intended feature of user namespaces. However
for at least saucy we want to make sure that, if any security
issues are found, we have a fail-safe.
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
[bwh: Remove unneeded binary sysctl bits]
Gbp-Pq: Topic debian
Gbp-Pq: Name add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch
Ben Hutchings [Wed, 19 Jun 2013 03:35:28 +0000 (04:35 +0100)]
yama: Disable by default
Gbp-Pq: Topic debian
Gbp-Pq: Name yama-disable-by-default.patch
Ben Hutchings [Wed, 16 Mar 2011 03:17:06 +0000 (03:17 +0000)]
sched: Do not enable autogrouping by default
We want to provide the option of autogrouping but without enabling
it by default yet.
Gbp-Pq: Topic debian
Gbp-Pq: Name sched-autogroup-disabled.patch
Ben Hutchings [Fri, 2 Nov 2012 05:32:06 +0000 (05:32 +0000)]
fs: Enable link security restrictions by default
This reverts commit
561ec64ae67ef25cac8d72bb9c4bfc955edfd415
('VFS: don't do protected {sym,hard}links by default').
Gbp-Pq: Topic debian
Gbp-Pq: Name fs-enable-link-security-restrictions-by-default.patch
Ben Hutchings [Sat, 20 Nov 2010 02:24:55 +0000 (02:24 +0000)]
decnet: Disable auto-loading as mitigation against local exploits
Recent review has revealed several bugs in obscure protocol
implementations that can be exploited by local users for denial of
service or privilege escalation. We can mitigate the effect of any
remaining vulnerabilities in such protocols by preventing unprivileged
users from loading the modules, so that they are only exploitable on
systems where the administrator has chosen to load the protocol.
The 'decnet' protocol is unmaintained and of mostly historical
interest, and the user-space support package 'dnet-common' loads the
module explicitly. Therefore disable auto-loading.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic debian
Gbp-Pq: Name decnet-Disable-auto-loading-as-mitigation-against-lo.patch
Ben Hutchings [Fri, 19 Nov 2010 02:12:48 +0000 (02:12 +0000)]
rds: Disable auto-loading as mitigation against local exploits
Recent review has revealed several bugs in obscure protocol
implementations that can be exploited by local users for denial of
service or privilege escalation. We can mitigate the effect of any
remaining vulnerabilities in such protocols by preventing unprivileged
users from loading the modules, so that they are only exploitable on
systems where the administrator has chosen to load the protocol.
The 'rds' protocol is one such protocol that has been found to be
vulnerable, and which was not present in the 'lenny' kernel.
Therefore disable auto-loading.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic debian
Gbp-Pq: Name rds-Disable-auto-loading-as-mitigation-against-local.patch
Ben Hutchings [Fri, 19 Nov 2010 02:12:48 +0000 (02:12 +0000)]
af_802154: Disable auto-loading as mitigation against local exploits
Recent review has revealed several bugs in obscure protocol
implementations that can be exploited by local users for denial of
service or privilege escalation. We can mitigate the effect of any
remaining vulnerabilities in such protocols by preventing unprivileged
users from loading the modules, so that they are only exploitable on
systems where the administrator has chosen to load the protocol.
The 'af_802154' (IEEE 802.15.4) protocol is not widely used, was
not present in the 'lenny' kernel, and seems to receive only sporadic
maintenance. Therefore disable auto-loading.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic debian
Gbp-Pq: Name af_802154-Disable-auto-loading-as-mitigation-against.patch
J. R. Okajima [Mon, 3 Oct 2016 18:30:06 +0000 (03:30 +0900)]
aufs4.8 standalone patch
Patch headers added by debian/patches/features/all/aufs4/gen-patch
aufs4.8 standalone patch
Gbp-Pq: Topic features/all/aufs4
Gbp-Pq: Name aufs4-standalone.patch
J. R. Okajima [Mon, 3 Oct 2016 18:30:06 +0000 (03:30 +0900)]
aufs4.8 mmap patch
Patch headers added by debian/patches/features/all/aufs4/gen-patch
aufs4.8 mmap patch
Gbp-Pq: Topic features/all/aufs4
Gbp-Pq: Name aufs4-mmap.patch
J. R. Okajima [Mon, 3 Oct 2016 18:30:06 +0000 (03:30 +0900)]
aufs4.8 base patch
Patch headers added by debian/patches/features/all/aufs4/gen-patch
aufs4.8 base patch
Gbp-Pq: Topic features/all/aufs4
Gbp-Pq: Name aufs4-base.patch
Ben Hutchings [Tue, 8 Jan 2013 03:25:52 +0000 (03:25 +0000)]
radeon: Firmware is required for DRM and KMS on R600 onward
radeon requires firmware/microcode for the GPU in all chips, but for
newer chips (apparently R600 'Evergreen' onward) it also expects
firmware for the memory controller and other sub-blocks.
radeon attempts to gracefully fall back and disable some features if
the firmware is not available, but becomes unstable - the framebuffer
and/or system memory may be corrupted, or the display may stay black.
Therefore, perform a basic check for the existence of
/lib/firmware/radeon when a device is probed, and abort if it is
missing, except for the pre-R600 case.
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name radeon-firmware-is-required-for-drm-and-kms-on-r600-onward.patch
Ben Hutchings [Sun, 9 Dec 2012 16:40:31 +0000 (16:40 +0000)]
firmware: Remove redundant log messages from drivers
Now that firmware_class logs every success and failure consistently,
many other log messages can be removed from drivers.
This will probably need to be split up into multiple patches prior to
upstream submission.
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name firmware-remove-redundant-log-messages-from-drivers.patch
Ben Hutchings [Sun, 9 Dec 2012 16:02:00 +0000 (16:02 +0000)]
firmware_class: Log every success and failure against given device
The hundreds of users of request_firmware() have nearly as many
different log formats for reporting failures. They also have only the
vaguest hint as to what went wrong; only firmware_class really knows
that. Therefore, add specific log messages for the failure modes that
aren't currently logged.
In case of a driver that tries multiple names, this may result in the
impression that it failed to initialise. Therefore, also log successes.
This makes many error messages in drivers redundant, which will be
removed in later patches.
This does not cover the case where we fall back to a user-mode helper
(which is no longer enabled in Debian).
NOTE: hw-detect will depend on the "firmware: failed to load %s (%d)\n"
format to detect missing firmware.
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name firmware_class-log-every-success-and-failure.patch
Ben Hutchings [Fri, 2 Dec 2016 05:35:22 +0000 (05:35 +0000)]
iwlwifi: Do not request unreleased firmware for IWL6000
The iwlwifi driver currently supports firmware API versions 4-6 for
these devices. It will request the file for the latest supported
version and then fall back to earlier versions. However, the latest
version that has actually been released is 4, so we expect the
requests for versions 6 and then 5 to fail.
The installer appears to report any failed request, and it is probably
not easy to detect that this particular failure is harmless. So stop
requesting the unreleased firmware.
Gbp-Pq: Topic debian
Gbp-Pq: Name iwlwifi-do-not-request-unreleased-firmware.patch
Ben Hutchings [Mon, 24 Aug 2009 22:19:58 +0000 (23:19 +0100)]
af9005: Use request_firmware() to load register init script
Read the register init script from the Windows driver. This is sick
but should avoid the potential copyright infringement in distributing
a version of the script which is directly derived from the driver.
Gbp-Pq: Topic features/all
Gbp-Pq: Name drivers-media-dvb-usb-af9005-request_firmware.patch
Bastian Blank [Fri, 7 Oct 2011 20:37:52 +0000 (21:37 +0100)]
Install perf scripts non-executable
[bwh: Forward-ported to 3.12]
Gbp-Pq: Topic debian
Gbp-Pq: Name tools-perf-install.patch
Bastian Blank [Mon, 26 Sep 2011 12:53:12 +0000 (13:53 +0100)]
Create manpages and binaries including the version
[bwh: Fix version insertion in perf man page cross-references and perf
man page title. Install bash_completion script for perf with a
version-dependent name. And do the same for trace.]
Gbp-Pq: Topic debian
Gbp-Pq: Name tools-perf-version.patch
Chris Boot [Mon, 1 Jul 2013 22:10:02 +0000 (23:10 +0100)]
modpost symbol prefix setting
[bwh: The original version of this was added by Bastian Blank. The
upstream code includes <generated/autoconf.h> so that <linux/export.h>
can tell whether C symbols have an underscore prefix. Since we build
modpost separately from the kernel, <generated/autoconf.h> won't exist.
However, no Debian Linux architecture uses the symbol prefix, so we
can simply omit it.]
Gbp-Pq: Topic debian
Gbp-Pq: Name modpost-symbol-prefix.patch
Ben Hutchings [Tue, 14 Sep 2010 03:33:34 +0000 (04:33 +0100)]
Kbuild: kconfig: Verbose version of --listnewconfig
If the KBUILD_VERBOSE environment variable is set to non-zero, show
the default values of new symbols and not just their names.
Based on work by Bastian Blank <waldi@debian.org> and
maximilian attems <max@stro.at>. Simplified by Michal Marek
<mmarek@suse.cz>.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic features/all
Gbp-Pq: Name Kbuild-kconfig-Verbose-version-of-listnewconfig.patch
Debian Kernel Team [Fri, 2 Dec 2016 05:35:22 +0000 (05:35 +0000)]
powerpcspe-omit-uimage
Gbp-Pq: Topic debian
Gbp-Pq: Name powerpcspe-omit-uimage.patch
Nobuhiro Iwamatsu [Fri, 2 Dec 2016 05:35:22 +0000 (05:35 +0000)]
Fix uImage build
[bwh: This was added without a description, but I think it is dealing
with a similar issue to powerpcspe-omit-uimage.patch]
Gbp-Pq: Topic debian
Gbp-Pq: Name arch-sh4-fix-uimage-build.patch
Ben Hutchings [Mon, 13 Sep 2010 01:16:18 +0000 (02:16 +0100)]
Partially revert "MIPS: Add -Werror to arch/mips/Kbuild"
This reverts commit
66f9ba101f54bda63ab1db97f9e9e94763d0651b.
We really don't want to add -Werror anywhere.
Gbp-Pq: Topic debian
Gbp-Pq: Name mips-disable-werror.patch
Ian Campbell [Thu, 17 Jan 2013 08:55:21 +0000 (08:55 +0000)]
Tweak gitignore for Debian pkg-kernel using git svn.
[bwh: Tweak further for pure git]
Gbp-Pq: Topic debian
Gbp-Pq: Name gitignore.patch
Bastian Blank [Sun, 22 Feb 2009 14:39:35 +0000 (15:39 +0100)]
kbuild: Make the toolchain variables easily overwritable
Allow make variables to be overridden for each flavour by a file in
the build tree, .kernelvariables.
We currently use this for ARCH, KERNELRELEASE, CC, and in some cases
also CROSS_COMPILE, CFLAGS_KERNEL and CFLAGS_MODULE.
This file can only be read after we establish the build tree, and all
use of $(ARCH) needs to be moved after this.
Gbp-Pq: Topic debian
Gbp-Pq: Name kernelvariables.patch
Ben Hutchings [Tue, 12 May 2015 18:29:22 +0000 (19:29 +0100)]
Make mkcompile_h accept an alternate timestamp string
We want to include the Debian version in the utsname::version string
instead of a full timestamp string. However, we still need to provide
a standard timestamp string for gen_initramfs_list.sh to make the
kernel image reproducible.
Make mkcompile_h use $KBUILD_BUILD_VERSION_TIMESTAMP in preference to
$KBUILD_BUILD_TIMESTAMP.
Gbp-Pq: Topic debian
Gbp-Pq: Name uname-version-timestamp.patch
Ben Hutchings [Tue, 24 Jul 2012 02:13:10 +0000 (03:13 +0100)]
Include package version along with kernel release in stack traces
For distribution binary packages we assume
$DISTRIBUTION_OFFICIAL_BUILD, $DISTRIBUTOR and $DISTRIBUTION_VERSION
are set.
Gbp-Pq: Topic debian
Gbp-Pq: Name version.patch
Salvatore Bonaccorso [Fri, 2 Dec 2016 05:35:22 +0000 (05:35 +0000)]
linux (4.8.11-1) unstable; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.8
- net: fec: set mac address unconditionally
- net: pktgen: fix pkt_size
- net/sched: act_vlan: Push skb->data to mac_header prior calling
skb_vlan_*() functions
- net: Add netdev all_adj_list refcnt propagation to fix panic
- packet: call fanout_release, while UNREGISTERING a netdev
- netlink: do not enter direct reclaim from netlink_dump()
- drivers/ptp: Fix kernel memory disclosure
- net_sched: reorder pernet ops and act ops registrations
- ipv6: tcp: restore IP6CB for pktoptions skbs
- net: phy: Trigger state machine on state change and not polling.
- ip6_tunnel: fix ip6_tnl_lookup
- ipv6: correctly add local routes when lo goes up
- IB/ipoib: move back IB LL address into the hard header
- net/mlx4_en: fixup xdp tx irq to match rx
- net: pktgen: remove rcu locking in pktgen_change_name()
- bridge: multicast: restore perm router ports on multicast enable
- switchdev: Execute bridge ndos only for bridge ports
- rtnetlink: Add rtnexthop offload flag to compare mask
- net: core: Correctly iterate over lower adjacency list
- net: add recursion limit to GRO
- ipv4: disable BH in set_ping_group_range()
- ipv4: use the right lock for ping_group_range
- net: fec: Call swap_buffer() prior to IP header alignment
- net: sctp, forbid negative length
- sctp: fix the panic caused by route update
- udp: fix IP_CHECKSUM handling
- [x86] netvsc: fix incorrect receive checksum offloading
- net: ipv6: Do not consider link state for nexthop validation
- net sched filters: fix notification of filter delete with proper handle
- sctp: validate chunk len before actually using it (CVE-2016-9555)
- ip6_tunnel: Update skb->protocol to ETH_P_IPV6 in ip6_tnl_xmit()
- packet: on direct_xmit, limit tso and csum to supported devices
- [powerpc] Update parameters for csum_tcpudp_magic & csum_tcpudp_nofold
- [arm64, armhf] usb: dwc3: gadget: properly account queued requests
- scsi: megaraid_sas: Fix data integrity failure for JBOD (passthrough)
devices
- scsi: megaraid_sas: fix macro MEGASAS_IS_LOGICAL to avoid regression
https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.9
- ALSA: info: Return error for invalid read/write
- ALSA: info: Limit the proc text input size
- dib0700: fix nec repeat handling
- mm, frontswap: make sure allocated frontswap map is assigned
- shmem: fix pageflags after swapping DMA32 object
- swapfile: fix memory corruption via malformed swapfile
- mm: hwpoison: fix thp split handling in memory_failure()
- mm/hugetlb: fix huge page reservation leak in private mapping error paths
- coredump: fix unfreezable coredumping task
- [s390x] hypfs: Use get_free_page() instead of kmalloc to ensure page
alignment
- PCI: Don't attempt to claim shadow copies of ROM
- [x86] pinctrl: cherryview: Serialize register access in suspend/resume
- [x86] pinctrl: cherryview: Prevent possible interrupt storm on resume
- cpupower: Correct return type of cpu_power_is_cpu_online() in cpufreq-set
- mmc: sdhci: Fix CMD line reset interfering with ongoing data transfer
- mmc: sdhci: Fix unexpected data interrupt handling
- mmc: mmc: Use 500ms as the default generic CMD6 timeout
- [arm64, armhf] usb: dwc3: Fix error handling for core init
- USB: cdc-acm: fix TIOCMIWAIT
- usb: gadget: u_ether: remove interrupt throttling
- drbd: Fix kernel_sendmsg() usage - potential NULL deref
- cdc-acm: fix uninitialized variable
- scsi: qla2xxx: Fix scsi scan hang triggered if adapter fails during init
- scsi: mpt3sas: Fix for block device of raid exists even after deleting
raid disk
- scsi: scsi_dh_alua: fix missing kref_put() in alua_rtpg_work()
- scsi: scsi_dh_alua: Fix a reference counting bug
- [arm64] KVM: vgic: Prevent access to invalid SPIs
- drm/radeon: disable runtime pm in certain cases
- [x86] drm/i915: Respect alternate_ddc_pin for all DDI ports
- [x86] drm/i915/dp: BDW cdclk fix for DP audio
- [x86] drm/i915/dp: Extend BDW DP audio workaround to GEN9 platforms
- [x86] drm/amdgpu: disable runtime pm in certain cases
- xprtrdma: use complete() instead complete_all()
- xprtrdma: Fix DMAR failure in frwr_op_map() after reconnect
- [amd64] iommu/amd: Free domain id when free a domain of struct
dma_ops_domain
- [x86] iommu/vt-d: Fix dead-locks in disable_dmar_iommu() path
- [x86] agp/intel: Flush chipset writes after updating a single PTE
- watchdog: core: Fix devres_alloc() allocation size
- perf top: Fix refreshing hierarchy entries on TUI
- [x86] mei: bus: fix received data size check in NFC fixup
- svcrdma: Skip put_page() when send_reply() fails
- svcrdma: Tail iovec leaves an orphaned DMA mapping
- nvme: Delete created IO queues on reset
- [s390x] dumpstack: restore reliable indicator for call traces
- hwrng: core - Don't use a stack buffer in add_early_randomness()
- i40e: fix call of ndo_dflt_bridge_getlink()
- [arm64] mmc: sdhci-msm: Fix error return code in sdhci_msm_probe()
- [x86] ACPI / APEI: Fix incorrect return value of ghes_proc()
- ACPI/PCI/IRQ: assign ISA IRQ directly during early boot stages
- ACPI/PCI: pci_link: penalize SCI correctly
- ACPI/PCI: pci_link: Include PIRQ_PENALTY_PCI_USING for ISA IRQs
- batman-adv: Modify neigh_list only with rcu-list functions
- [armel, armhf] gpio/mvebu: Use irq_domain_add_linear
- ASoC: Intel: Skylake: Always acquire runtime pm ref on unload
- [armhf] ASoC: sun4i-codec: return error code instead of NULL when
create_card fails
- memcg: prevent memcg caches to be both OFF_SLAB & OBJFREELIST_SLAB
- libceph: fix legacy layout decode with pool 0
- [x86] drm/amdgpu: fix fence slab teardown
- [x86] drm/amdgpu: fix a vm_flush fence leak
- [x86] drm/i915: Fix mismatched INIT power domain disabling during
suspend
- netfilter: fix namespace handling in nf_log_proc_dostring
https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.10
- dctcp: avoid bogus doubling of cwnd after loss
- net: clear sk_err_soft in sk_clone_lock()
- net: mangle zero checksum in skb_checksum_help()
- ip6_tunnel: Clear IP6CB in ip6tunnel_xmit()
- tcp: fix potential memory corruption
- ipv4: allow local fragmentation in ip_finish_output_gso()
- tcp: fix return value for partial writes
- dccp: do not release listeners too soon
- dccp: do not send reset to already closed sockets
- dccp: fix out of bound access in dccp_v4_err()
- ipv6: dccp: fix out of bound access in dccp_v6_err()
- ipv6: dccp: add missing bind_conflict to dccp_ipv6_mapped
- sctp: assign assoc_id earlier in __sctp_connect
- bpf: fix htab map destruction when extra reserve is in use
- net: icmp6_send should use dst dev to determine L3 domain
- fib_trie: Correct /proc/net/route off by one error
- sock: fix sendmmsg for partial sendmsg
- net: icmp_route_lookup should use rt dev to determine L3 domain
- net: __skb_flow_dissect() must cap its return value
- ipv4: use new_gw for redirect neigh lookup
- tcp: take care of truncations done by sk_filter() (CVE-2016-8645)
- Revert "include/uapi/linux/atm_zatm.h: include linux/time.h"
(Closes: #844491)
- Revert "bnx2: Reset device during driver initialization"
- bnx2: Wait for in-flight DMA to complete at probe stage
- sctp: change sk state only when it has assocs in sctp_shutdown
- [arm64, armhf] net: stmmac: Fix lack of link transition for fixed PHYs
- [sparc] Handle negative offsets in arch_jump_label_transform
- [sparc64] Handle extremely large kernel TSB range flushes sanely.
- [sparc64] Fix illegal relative branches in hypervisor patched TLB code.
- [sparc64] Fix instruction count in comment for
__hypervisor_flush_tlb_pending.
- [sparc64] Fix illegal relative branches in hypervisor patched TLB
cross-call code.
- [sparc64] Handle extremely large kernel TLB range flushes more
gracefully.
- [sparc64] Delete __ret_efault.
- [sparc64] Prepare to move to more saner user copy exception handling.
- [sparc64] Convert copy_in_user to accurate exception reporting.
- [sparc64] Convert GENcopy_{from,to}_user to accurate exception
reporting.
- [sparc64] Convert U1copy_{from,to}_user to accurate exception reporting.
- [sparc64] Convert NG4copy_{from,to}_user to accurate exception
reporting.
- [sparc64] Convert NGcopy_{from,to}_user to accurate exception reporting.
- [sparc64] Convert NG2copy_{from,to}_user to accurate exception
reporting.
- [sparc64] Convert U3copy_{from,to}_user to accurate exception reporting.
- [sparc64] Delete now unused user copy assembler helpers.
- [sparc64] Delete now unused user copy fixup functions.
- usb: gadget: f_fs: edit epfile->ep under lock
- usb: gadget: f_fs: stop sleeping in ffs_func_eps_disable
https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.11
- [x86] cpu/AMD: Fix cpu_llc_id for AMD Fam17h systems
- [x86] KVM: fix missed SRCU usage in kvm_lapic_set_vapic_addr
- [x86] KVM: Disable irq while unregistering user notifier
- ftrace: Ignore FTRACE_FL_DISABLED while walking dyn_ftrace records
- ftrace: Add more checks for FTRACE_FL_DISABLED in processing ip records
- genirq: Use irq type from irqdata instead of irqdesc
- fuse: fix fuse_write_end() if zero bytes were copied
- IB/rdmavt: rdmavt can handle non aligned page maps
- IB/hfi1: Fix rnr_timer addition
- [x86] mfd: intel-lpss: Do not put device in reset state on suspend
- [armhf] mfd: stmpe: Fix RESET regression on STMPE2401
- can: bcm: fix warning in bcm_connect/proc_register
- gpio: do not double-check direction on sleeping chips
- [x86] ALSA: usb-audio: Fix use-after-free of usb_device at disconnect
- [x86] ALSA: hda - add a new condition to check if it is thinkpad
- ALSA: hda - Fix mic regression by ASRock mobo fixup
- [armhf] i2c: mux: fix up dependencies
- [armhf] i2c: i2c-mux-pca954x: fix deselect enabling for device-tree
- kbuild: add -fno-PIE
- scripts/has-stack-protector: add -fno-PIE
- x86/kexec: add -fno-PIE
- kbuild: Steal gcc's pie from the very beginning
- ext4: sanity check the block and cluster size at mount time
- [armhf] dts: imx53-qsb: Fix regulator constraints
- crypto: caam - do not register AES-XTS mode on LP units
- [powerpc*] Fix setting of AIL in hypervisor mode
- [x86] drm/amdgpu: Attach exclusive fence to prime exported bo's.
- [x86] drm/i915: Refresh that status of MST capable connectors in
->detect()
- [x86] drm/i915: Assume non-DP++ port if dvo_port is HDMI and there's no
AUX ch specified in the VBT
- virtio-net: drop legacy features in virtio 1 mode
- [armhf] clk: imx: fix integer overflow in AV PLL round rate
- [armhf] rtc: omap: Fix selecting external osc
- iwlwifi: pcie: fix SPLC structure parsing
- iwlwifi: pcie: mark command queue lock with separate lockdep class
- iwlwifi: mvm: fix netdetect starting/stopping for unified images
- iwlwifi: mvm: fix d3_test with unified D0/D3 images
- iwlwifi: mvm: wake the wait queue when the RX sync counter is zero
- mfd: core: Fix device reference leak in mfd_clone_cell
- sunrpc: svc_age_temp_xprts_now should not call setsockopt non-tcp
transports
- uwb: fix device reference leaks
- PM / sleep: fix device reference leak in test_suspend
- PM / sleep: don't suspend parent when async child suspend_{noirq,
late} fails
- perf hists: Fix column length on --hierarchy
- IB/mlx4: Check gid_index return value
- IB/mlx4: Fix create CQ error flow
- IB/mlx5: Validate requested RQT size
- IB/mlx5: Use cache line size to select CQE stride
- IB/mlx5: Fix memory leak in query device
- IB/mlx5: Fix fatal error dispatching
- IB/mlx5: Fix NULL pointer dereference on debug print
- IB/core: Avoid unsigned int overflow in sg_alloc_table
- IB/hfi1: Remove incorrect IS_ERR check
- IB/uverbs: Fix leak of XRC target QPs
- IB/cm: Mark stale CM id's whenever the mad agent was unregistered
- netfilter: nft_dynset: fix element timeout for HZ != 1000
- [arm64, armhf] gpio: pca953x: Move memcpy into mutex lock for set
multiple
- [arm64, armhf] gpio: pca953x: Fix corruption of other gpios in
set_multiple.
[ Salvatore Bonaccorso ]
* Bump ABI to 2 and remove ABI reference for 4.8.0-1
* xfs: Propagate dentry down to inode_change_ok()
* ceph: Propagate dentry down to inode_change_ok()
* fuse: Propagate dentry down to inode_change_ok()
* fs: Give dentry to inode_change_ok() instead of inode
* fs: Avoid premature clearing of capabilities (CVE-2015-1350)
(Closes: #770492)
* mpi: Fix NULL ptr dereference in mpi_powm() (CVE-2016-8650)
* vfio/pci: Fix integer overflows, bitmask check (CVE-2016-9083
CVE-2016-9084)
* mnt: Add a per mount namespace limit on the number of mounts
(CVE-2016-6213)
[ Ben Hutchings ]
* [arm64] Enable more drivers for X-Gene (Really closes: #840061):
- DMA: Enable XGENE_DMA as module
- EDAC: Enable EDAC and EDAC_MM_EDAC, EDAC_XGENE as modules
* [x86] video: Disable X86_SYSFB, FB_SIMPLE (Closes: #822575)
[dgit import unpatched linux 4.8.11-1]
Salvatore Bonaccorso [Fri, 2 Dec 2016 05:35:22 +0000 (05:35 +0000)]
Import linux_4.8.11.orig.tar.xz
[dgit import orig linux_4.8.11.orig.tar.xz]
Salvatore Bonaccorso [Fri, 2 Dec 2016 05:35:22 +0000 (05:35 +0000)]
Import linux_4.8.11-1.debian.tar.xz
[dgit import tarball linux 4.8.11-1 linux_4.8.11-1.debian.tar.xz]